package com.ktwlsoft.fundmanage.payload.fundIn;

import com.ktwlsoft.fundmanage.domain.entity.FundInRecord;
import com.ktwlsoft.fundmanage.domain.entity.FundOutRecord;
import com.ktwlsoft.fundmanage.domain.entity.FundSuperviseAccept;
import com.ktwlsoft.fundmanage.domain.entity.HouseRelatedPerson;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

import java.math.BigDecimal;
import java.util.List;

/**
 * 查看资金流水
 *
 * @author zhuhe on 2019/9/4 14:07
 * @version 1.0
 */
@Getter
@Setter
public class QueryCapitalFlowRequest {

    /**
     * 交易编号，主键
     */
    @ApiModelProperty("交易编号")
    private long tsCode;

    /**
     * Activiti 工作流实例Id
     */
    @ApiModelProperty("工作流id")
    private String flowInstanceId;

    /**
     * 合同审核是否通过
     */
    @ApiModelProperty("合同审核是否通过")
    private FundSuperviseAccept.ContractApproval contractApproval;

    /**
     * 合同审核人
     */
    @ApiModelProperty("合同审核人")
    private String contractAuditor;

    /**
     * 合同审核人Id
     */
    @ApiModelProperty("合同审核人Id")
    private String contractAuditorId;

    /**
     * 存在贷款
     */
    @ApiModelProperty("是否存在贷款")
    private boolean loanExist;

    /**
     * 存在抵押
     */
    @ApiModelProperty("是否存在抵押")
    private boolean guarantyExist;

    /**
     * 监管账号
     */
    @ApiModelProperty("监管账户")
    private String superviseBank;

    /**
     * 买方银行账户
     */
    @ApiModelProperty("买方银行账户，请不要操作40字符")
    private String buyerBankAccount;

    /**
     * 贷款金额
     */
    @ApiModelProperty("贷款金额")
    private BigDecimal loanAmount;

    /**
     * 监管金额
     */
    @ApiModelProperty("监管金额")
    private BigDecimal superviseAmount;

    /**
     * 合同金额
     */
    @ApiModelProperty("合同金额")
    private BigDecimal contractAmount;

    /**
     * 贷款期限
     */
    @ApiModelProperty("贷款期限（年）0~30")
    private int loanPeriod;

    /**
     * 挂牌编号
     */
    @ApiModelProperty("挂牌编号，请不要超过40字符")
    private String pubCode;

    /**
     * 所有权证号
     */
    @ApiModelProperty("所有权证号, 不要大于30字符")
    private String ownershipNo;

    /**
     * 房屋编号
     */
    @ApiModelProperty("房屋编号, 不超过40字符")
    private String houseCode;

    /**
     * 房屋所在区县代码
     */
    @ApiModelProperty("房屋所在区县代码，不得超过40字符")
    private String districtCode;

    /**
     * 房屋坐落位置
     */
    @ApiModelProperty("房屋坐落位置，不得超过40字符")
    private String houseAddress;

    /**
     * 房屋用途
     */
    @ApiModelProperty("房屋用途，不得超过40字符")
    private String useRange;

    /**
     * 房屋建筑面积
     */
    @ApiModelProperty("房屋建筑面积")
    private float constructionArea;

    /**
     * 房屋套内面积
     */
    @ApiModelProperty("房屋套内面积")
    private float comprisingArea;

    /**
     * 房屋共有建筑面积
     */
    @ApiModelProperty("房屋共有建筑面积")
    private float commonArea;

    /**
     * 房屋结构
     */
    @ApiModelProperty("房屋结构，不得超过100字符")
    private String structure;

    /**
     * 经办人Id
     */
    @ApiModelProperty("经办人Id，不得超过50字符")
    private String userId;

    /**
     * 经办人姓名
     */
    @ApiModelProperty("经办人姓名，不得超过30字符")
    private String userName;

    /**
     * 打印次数
     */
    @ApiModelProperty("打印次数")
    private int printTimes;

    /**
     * 是否过户
     */
    @ApiModelProperty("是否过户")
    private boolean transferState;

    /**
     * 是否备案
     */
    @ApiModelProperty("是否备案")
    private boolean recordState;

    /**
     * 资金状态
     */
    @ApiModelProperty("资金状态")
    private FundSuperviseAccept.FundState fundState;

    /**
     * 还款方式
     */
    @ApiModelProperty("还款方式")
    private FundSuperviseAccept.RepaymentMeans repaymentMeans;

    /**
     * 备案状态
     */
    @ApiModelProperty("备案状态")
    private FundSuperviseAccept.AcceptState acceptState;


    /**合同url*/
    @ApiModelProperty("合同url")
    private String contractUrl;

    /**监管协议url*/
    @ApiModelProperty("监管协议url")
    private String superviseProtocolUrl;

    /**卖方身份证url*/
    @ApiModelProperty("卖方身份证url")
    private String sellerIdCardUrl;

    /**卖方不动产权url*/
    @ApiModelProperty("卖方不动产权url")
    private String sellerPropertyRightUrl;

    /**卖方上市准入证url*/
    @ApiModelProperty("卖方上市准入证url")
    private String sellerAccessCertificationUrl;

    /**买方身份证url*/
    @ApiModelProperty("买方身份证url")
    private String buyerIdCardUrl;

    /**买方不动产权url*/
    @ApiModelProperty("买方不动产权url")
    private String buyerPropertyRightUrl;

    /**买方上市准入证url*/
    @ApiModelProperty("买方上市准入证url")
    private String buyerAccessCertificationUrl;

    /**资金进出记录集合*/
    @ApiModelProperty("资金进出记录集合")
    private List<FundInRecord> fundInRecords;

    /**房屋关系人*/
    @ApiModelProperty("房屋关系人")
    private List<HouseRelatedPerson> houseRelatedPersonList;

    /**资金进出记录*/
    @ApiModelProperty("资金进出记录")
    private List<FundOutRecord> fundOutRecords;
}